package Response;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/*
   案列 : 重定向

   重定向(redirect)的特点 : (重点)
       1: 地址栏发生变化
       2: 重定向可以访问其他站点(服务器)的资源
       3: 重定向是两次请求.且不能使用request对象来共享数据
   转发(forward)的特点 : (重点)
       1: 转发后地址栏路径不变
       2: 转发只能访问当前服务器下的资源
       3: 转发是一次请求.能使用request对象来共享数据

*/

@WebServlet("/responseDemo02")
public class Response02 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("demo02.....");
      //访问/responseDemo02后会自动跳转到responseDemo03
       /* //1:设置状态码为302
        resp.setStatus(302);
        //设置响应头location
        resp.setHeader("location","/demo10/responseDemo03");*/

        //动态获取虚拟目录   好处就是当我们修改了虚拟目录的时候不需要再修改代码中的虚拟目录
        String cc = req.getContextPath();

        //简单的重定向方法
        resp.sendRedirect(cc+"/responseDemo03"); //这一行代码的原理就是上面两行代码
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }
}
